package com.rw.coco.api.data.persistence;

import com.rw.coco.api.data.model.CharacterPropertyModel;

import java.util.Set;

/**
 * 角色属性相关交互
 */
public interface CharacterPropertyMapper {
    /**
     * 获取指定角色的所有属性
     *
     * @param characterId 角色的ID
     */
    Set<CharacterPropertyModel> getProperties(int characterId);

    /**
     * 设置指定角色的属性
     *
     * @param properties 需要设置的属性
     */
    void setProperties(Set<CharacterPropertyModel> properties);

    /**
     * 删除指定角色的指定的某条属性
     *
     * @param characterId    角色id
     * @param propertiesName 角色属性名
     */
    void deleteProperties(int characterId, String propertiesName);

    /**
     * 删除指定角色的所有属性
     *
     * @param characterId 角色的ID
     */
    void deleteAllProperties(int characterId);

    /**
     * 增加角色指定的属性值
     *
     * @param characterId 角色ID
     * @param propName    属性值
     * @param addValue    增加的值
     */
    void addPropValue(int characterId, String propName, int addValue);
}
